package cn.shengchao.examstar.ai.application.dto;

import lombok.Builder;
import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * 学习日历数据传输对象
 * 用于应用层与外部系统的数据交换
 */
@Data
@Builder
public class StudyCalendarDTO {
    
    /**
     * 日历年月
     */
    private String yearMonth;
    
    /**
     * 用户ID
     */
    private String userId;
    
    /**
     * 学习计划ID
     */
    private String studyPlanId;
    
    /**
     * 日历条目 - 按日期分组
     * Key: 日期(格式: yyyy-MM-dd)
     * Value: 当日所有学习计划
     */
    private Map<String, List<StudyDayDTO>> calendarEntries;
    
    /**
     * 月度总学习时长(分钟)
     */
    private Integer totalStudyTimeMinutes;
    
    /**
     * 月度已完成任务数
     */
    private Integer completedTasksCount;
    
    /**
     * 月度总任务数
     */
    private Integer totalTasksCount;
    
    /**
     * 完成率(百分比)
     */
    public Double getCompletionRate() {
        if (totalTasksCount == null || totalTasksCount == 0) {
            return 0.0;
        }
        return completedTasksCount * 100.0 / totalTasksCount;
    }
} 